package com.joysuch.wwyt.app.bean;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.joysuch.wwyt.workflow.bean.ListFieldBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Author ZhangDong
 * @Date 2020/6/19 15:26
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppPendingTaskDto {

    @ApiModelProperty("任务名称")
    private String taskName;

    @ApiModelProperty("eg:巡检名称")
    private String showFirst;

    @ApiModelProperty("eg:开始时间")
    private String showSecond;

    @ApiModelProperty("eg:巡检周期")
    private String showThird;

    @ApiModelProperty("id--备用")
    private Long id;

    @ApiModelProperty("业务流程ID")
    private Long workFlowId;

    @ApiModelProperty("排序字段--不用取")
    private LocalDateTime localDateTime;

    @ApiModelProperty("任务id--目前只有隐患排查使用")
    private Long taskId;

    @ApiModelProperty("操作类型--工作流程使用")
    private String operationTypes;

    @ApiModelProperty("表单数据--工作流程使用")
    private String formData;

    @ApiModelProperty("对象ID列表--工作流程使用")
    private String objectId;

    @ApiModelProperty("业务名称")
    private String bizName;

    @ApiModelProperty(value = "发起人名称")
    private String createByName;

    @ApiModelProperty(value = "动火地点")
    private String dhAddress;

    @ApiModelProperty(value = "动火内容")
    private String dhContent;

    @ApiModelProperty(value = "流程引擎版本，0旧版本, 1新版本")
    private int processVersion;

    private String newProcessTaskId;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 执行ID
     */
    private String executionId;
    /**
     * 流程实例ID
     */
    private String processInstanceId;
    /**
     * 流程实例ID集合
     */
    private Set<String> processInstanceIds;
    /**
     * 流程ID
     */
    private String processDefinitionId;
    /**
     * 流程标识
     */
    private String processDefinitionKey;
    /**
     * 流程标识列表
     */
    private List<String> processDefinitionKeys;
    /**
     * 流程名
     */
    private String processDefinitionName;
    /**
     * 流程版本
     */
    private int processDefinitionVersion;
    /**
     * 流程说明
     */
    private String processDefinitionDesc;
    /**
     * 流程简图名
     */
    private String processDefinitionDiagramResName;
    /**
     * 流程重命名
     */
    private String processDefinitionResName;
    /**
     * 历史任务流程实例ID 查看流程图会用到
     */
    private String historyProcessInstanceId;
    /**
     * 流程实例是否结束
     */
    private String processIsFinished;
    /**
     * 历史活动ID
     */
    private String historyActivityId;
    /**
     * 历史活动流程
     */
    private String historyActivityName;
    /**
     * 历史活动类型
     */
    private String historyActivityType;
    /**
     * 历史活动耗时
     */
    private String historyActivityDurationTime;
    /**
     * 业务绑定Table
     */
    private String businessTable;
    /**
     * 业务绑定ID
     */
    private String businessId;


    private Map<String, Object> variables;

    private String modelMode;


    private List<ListFieldBean> todoListFields;
}
